package com.haixiaoke.saas.lock.mapper;

import com.haixiaoke.saas.lock.domain.DeviceLock;

import java.util.List;
import java.util.Map;

/**
 * 设备锁Mapper接口
 * 
 * @author panda
 * @date 2025-06-26
 */
public interface DeviceLockMapper {
    /**
     * 查询设备锁
     * 
     * @param lockId 设备锁主键
     * @return 设备锁
     */
    DeviceLock selectDeviceLockByLockId(Long lockId);

    /**
     * 查询设备锁列表
     * 
     * @param deviceLock 设备锁
     * @return 设备锁集合
     */
    List<DeviceLock> selectDeviceLockList(DeviceLock deviceLock);

    /**
     * 新增设备锁
     * 
     * @param deviceLock 设备锁
     * @return 结果
     */
    int insertDeviceLock(DeviceLock deviceLock);

    /**
     * 修改设备锁
     * 
     * @param deviceLock 设备锁
     * @return 结果
     */
    int updateDeviceLock(DeviceLock deviceLock);

    /**
     * 删除设备锁
     * 
     * @param lockId 设备锁主键
     * @return 结果
     */
    int deleteDeviceLockByLockId(Long lockId);

    /**
     * 批量删除设备锁
     * 
     * @param lockIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteDeviceLockByLockIds(Long[] lockIds);

    /**
     * 校验房屋id和设备mac是否存在
     * @param deviceLock
     * @return
     */
    List<Map<String, Object>> checkHouseIdAndMac(DeviceLock deviceLock);

    /**
     * C端查询设备锁列表
     * @param deviceLock
     * @return
     */
    List<DeviceLock> flatSelectDeviceLockList(DeviceLock deviceLock);

    List<String> selectDeviceLockMacList(String tenantId);

    DeviceLock selectDeviceLockByHouseId(String houseId);
}
